package DataStruct;

public interface List <E> {
    /**
     * 找不到对应位置元素
     */
    static final int ELEMENT_NOT_FOUND = -1;

    /**
     * 清空数组或链表
     * lianglibao
     * 2019/5/23 
     * 3:13 PM
     */
    void clear();
    
    /**
     * 判断数组或链表是否为空
     * lianglibao
     * 2019/5/23 
     * 3:13 PM
     */
    boolean isEmpty();
    
    /**
     * 判断数组或链表是否包含某个元素
     * lianglibao
     * 2019/5/23 
     * 3:13 PM
     */
    boolean contains(E element);
    
    /**
     * 从数组或链表尾部添加元素
     * lianglibao
     * 2019/5/23 
     * 3:14 PM
     */
    void add(E element);

    /**
     * 向数组或链表index位置添加元素
     * lianglibao
     * 2019/5/23 
     * 3:14 PM
     */
    void add(int index, E element);
    
    /**
     * 根据元素获取元素位置
     * lianglibao
     * 2019/5/23 
     * 3:17 PM
     */
    int indexOf(E element);

    /**
     * 获取index位置元素
     * lianglibao
     * 2019/5/23
     * 3:17 PM
     */
    E get(int index);

    /**
     * 设置index位置元素
     * lianglibao
     * 2019/5/23
     * 3:18 PM
     */
    E set(int index, E elemant);

    /**
     * 移除index位置元素
     * lianglibao
     * 2019/5/23
     * 3:18 PM
     */
    E remove(int index);
}
